1. Field
The following description relates to an apparatus and a job scheduling method thereof. More specifically, the following description relates to a multi-core processing apparatus and a job scheduling method thereof that dynamically manage a maximum number of jobs assigned to each core of the multi-core processing apparatus.
2. Description of Related Art
An application executed by a multi-core system, particularly a general-purpose application being executed by graphics processing units (GPUs), enables easy parallelization of a large amount of data to be processed, since there is no dependency between the data to be processed.
Furthermore, it is established that a maximum use of available computing resources has the effect of increasing the enhanced performance provided by parallelization. For example, in a scenario, an application may mainly use independent resources, such as a register file, a scratchpad memory, a computing unit, and so on, in a core for each core. In this scenario, as the number of jobs increases, the effects of memory access latency or pipeline latency is decreased because of the independence of the resources. Because latency is reduced, it improves overall performance.
However, in a scenario in which an application mainly or entirely uses a memory shared by all cores, for example, there may be a case where overall performance is not improved by the parallel use of multiple cores due to maximum bandwidth limitations of a network and/or a memory, even though the number of simultaneously executing jobs is increased. Further, due to network congestion caused by excessive traffic, and depletion of L2 cache capacity, there may also be a case where performance is actually degraded when the number of jobs is increased.